package org.ezplatform.office.meeting.info.entity;


import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;

import org.ezplatform.core.annotation.MetaData;
import org.ezplatform.core.entity.BaseCorpEntity;


/**
 * @ClassName: MeetingApplyRecord
 * @Description: 会议申请记录表实体类
 */
@MetaData("会议申请记录表")
@Entity
@Table(name = "oa_meeting_apply_record")
public class ApplyRecord extends BaseCorpEntity {

	private static final long serialVersionUID = -1L;

	@MetaData("会议名称")
    @Column(name = "name")
    private String name;
    
    @MetaData("会议内容")
    @Column(name = "content",length=2000)
    private String content;
    
    @MetaData("开始时间")
    @Column(name = "start_time")
    private String startTime;
    
    @MetaData("结束时间")
    @Column(name = "end_time")
    private String endTime;
    
    @MetaData("是否周期性会议")
    @Column(name = "is_cycle")
    private int isCycle;
    
    @MetaData("周期性重复方式（0：按天，1：按周，2：按月）")
    @Column(name = "cycle_type")
    private int cycleType;
    
    @MetaData("周期值")
    @Column(name = "cycle_value")
    private String cycleValue;
    
    @MetaData("周期性结束时间")
    @Column(name = "cycle_end_time")
    private String cycleEndTime;
    
    @MetaData("同周期会议共有id")
    @Column(name = "cycle_id")
    private String cycleId;
    
    @MetaData("会议室id")
    @Column(name = "boardroom_id")
    private String boardroomId;
    
    @MetaData("会议类型id")
    @Column(name = "meeting_type_id")
    private String meetingTypeId;
    
    @MetaData("主持人")
    @Column(name = "emcee_user")
    private String emceeUser;
    
    @MetaData("纪要员")
    @Column(name = "memo_user")
    private String memoUser;
    
    @MetaData("参会人员")
    @Column(name = "attend_user")
    private String attendUser;
    
    @MetaData("会议列席人")
    @Column(name = "meeting_attendants")
    private String meetingAttendants;
    
    @MetaData("是否会前提醒")
    @Column(name = "is_notice")
    private int isNotice;
    
    @MetaData("提醒方式")
    @Column(name = "notice_type")
    private String noticeType;
    
    @MetaData("提醒时间")
    @Column(name = "notice_time")
    private String noticeTime;
    
    @MetaData("是否会议签到")
    @Column(name = "is_signed")
    private int isSigned;
	
    @MetaData("签到时间")
    @Column(name = "signed_time")
    private String signedTime;
    
    @MetaData("会议服务")
    @Column(name = "meeting_serve")
    private String meetingServe;
    
    @MetaData("会议申请状态")//-1——会议作废释放资源,0——申请中,1——未召开,2——已驳回,3——已取消,4——进行中,5——已结束,6——草稿箱
    @Column(name = "status")
    private int status;
    
    @MetaData("会议申请状态")
    @Column(name = "reason")
    private String reason;
    
    @MetaData("签到二维码附件")
    @Column(name = "qrcode_attach")
    private String qrcodeAttach;
    
    @MetaData("签到方式")
    @Column(name = "signed_type")
    private String signedType;
    
    @MetaData("有效签到范围")
    @Column(name = "signed_range")
    private String signedRange;

    @MetaData("email：邮件，mobile：移动端， sms：短信")
    @Column(name = "message_push")
    private String messagePush;
    
    @MetaData("备注")
    @Column(name = "remark")
    private String remark;

    @MetaData("附件")
    @Column(name = "file_id")
    private String fileId;
    
    @MetaData("同步会议通知（0：未同步，1：已同步）")
    @Column(name = "is_sync")
    private int isSync;
    
    @MetaData("是否同步日程（0：未同步，1：同步）")
    @Column(name = "is_sync_calendar")
    private int isSyncCalendar;
    
    @MetaData("会议方式（0：现场参会，1：网络会议，2：现场+网络）")
    @Column(name = "meeting_way")
    private int meetingWay;
    
    @MetaData("无会议室会议的开会地点")
    @Column(name = "address")
    private String address;
    
    @MetaData("套用模板后生产的预览文件id")
    @Column(name = "business_recordid")
    private String businessRecordId;
    
    @MetaData("会议人数")
    @Column(name = "meeting_peoplenum")
    private Integer meetingPeopleNum;
    
    @MetaData("公司外参会人")
    @Column(name = "foreign_company",length=4000)
    private String foreignCompany;
    
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    public String getStartTime() {
        return startTime;
    }

    public void setStartTime(String startTime) {
        this.startTime = startTime;
    }

    public String getEndTime() {
        return endTime;
    }

    public void setEndTime(String endTime) {
        this.endTime = endTime;
    }

    public int getIsCycle() {
        return isCycle;
    }

    public void setIsCycle(int isCycle) {
        this.isCycle = isCycle;
    }

    public int getCycleType() {
        return cycleType;
    }

    public void setCycleType(int cycleType) {
        this.cycleType = cycleType;
    }

    public String getCycleValue() {
		return cycleValue;
	}

	public void setCycleValue(String cycleValue) {
		this.cycleValue = cycleValue;
	}

	public String getCycleEndTime() {
        return cycleEndTime;
    }

    public void setCycleEndTime(String cycleEndTime) {
        this.cycleEndTime = cycleEndTime;
    }

    public String getCycleId() {
		return cycleId;
	}

	public void setCycleId(String cycleId) {
		this.cycleId = cycleId;
	}

	public String getBoardroomId() {
        return boardroomId;
    }

    public void setBoardroomId(String boardroomId) {
        this.boardroomId = boardroomId;
    }

    public String getMeetingTypeId() {
		return meetingTypeId;
	}

	public void setMeetingTypeId(String meetingTypeId) {
		this.meetingTypeId = meetingTypeId;
	}

	public String getEmceeUser() {
        return emceeUser;
    }

    public void setEmceeUser(String emceeUser) {
        this.emceeUser = emceeUser;
    }

    public String getMemoUser() {
        return memoUser;
    }

    public void setMemoUser(String memoUser) {
        this.memoUser = memoUser;
    }

    public String getAttendUser() {
        return attendUser;
    }

    public void setAttendUser(String attendUser) {
        this.attendUser = attendUser;
    }

    public String getMeetingAttendants() {
		return meetingAttendants;
	}

	public void setMeetingAttendants(String meetingAttendants) {
		this.meetingAttendants = meetingAttendants;
	}

	public int getIsNotice() {
        return isNotice;
    }

    public void setIsNotice(int isNotice) {
        this.isNotice = isNotice;
    }

    public String getNoticeType() {
        return noticeType;
    }

    public void setNoticeType(String noticeType) {
        this.noticeType = noticeType;
    }

    public String getNoticeTime() {
        return noticeTime;
    }

    public void setNoticeTime(String noticeTime) {
        this.noticeTime = noticeTime;
    }

    public int getIsSigned() {
        return isSigned;
    }

    public void setIsSigned(int isSigned) {
        this.isSigned = isSigned;
    }

    public String getSignedTime() {
        return signedTime;
    }

    public void setSignedTime(String signedTime) {
        this.signedTime = signedTime;
    }

    public String getMeetingServe() {
        return meetingServe;
    }

    public void setMeetingServe(String meetingServe) {
        this.meetingServe = meetingServe;
    }

    public int getStatus() {
        return status;
    }

    public void setStatus(int status) {
        this.status = status;
    }
    
    public String getMessagePush() {
		return messagePush;
	}

	public void setMessagePush(String messagePush) {
		this.messagePush = messagePush;
	}

	public String getReason() {
        return reason;
    }

    public void setReason(String reason) {
        this.reason = reason;
    }

	public String getQrcodeAttach() {
		return qrcodeAttach;
	}

	public void setQrcodeAttach(String qrcodeAttach) {
		this.qrcodeAttach = qrcodeAttach;
	}

	public String getSignedType() {
		return signedType;
	}

	public String getSignedRange() {
		return signedRange;
	}

	public void setSignedType(String signedType) {
		this.signedType = signedType;
	}

	public void setSignedRange(String signedRange) {
		this.signedRange = signedRange;
	}

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }
    
	public String getFileId() {
		return fileId;
	}

	public void setFileId(String fileId) {
		this.fileId = fileId;
	}

	public int getIsSync() {
		return isSync;
	}

	public void setIsSync(int isSync) {
		this.isSync = isSync;
	}

	public int getMeetingWay() {
		return meetingWay;
	}

	public void setMeetingWay(int meetingWay) {
		this.meetingWay = meetingWay;
	}

	public String getAddress() {
		return address;
	}

	public void setAddress(String address) {
		this.address = address;
	}

	public int getIsSyncCalendar() {
		return isSyncCalendar;
	}

	public void setIsSyncCalendar(int isSyncCalendar) {
		this.isSyncCalendar = isSyncCalendar;
	}

	public String getBusinessRecordId() {
		return businessRecordId;
	}

	public void setBusinessRecordId(String businessRecordId) {
		this.businessRecordId = businessRecordId;
	}

	public Integer getMeetingPeopleNum() {
		return meetingPeopleNum;
	}

	public void setMeetingPeopleNum(Integer meetingPeopleNum) {
		this.meetingPeopleNum = meetingPeopleNum;
	}

	public String getForeignCompany() {
		return foreignCompany;
	}

	public void setForeignCompany(String foreignCompany) {
		this.foreignCompany = foreignCompany;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = super.hashCode();
		result = prime * result + ((content == null) ? 0 : content.hashCode());
		result = prime * result + ((endTime == null) ? 0 : endTime.hashCode());
		result = prime * result + isSigned;
		result = prime * result + ((name == null) ? 0 : name.hashCode());
		result = prime * result + ((remark == null) ? 0 : remark.hashCode());
		result = prime * result + ((signedRange == null) ? 0 : signedRange.hashCode());
		result = prime * result + ((signedTime == null) ? 0 : signedTime.hashCode());
		result = prime * result + ((signedType == null) ? 0 : signedType.hashCode());
		result = prime * result + ((startTime == null) ? 0 : startTime.hashCode());
		result = prime * result + ((messagePush == null) ? 0 : messagePush.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
//		if (!super.equals(obj))
//			return false;
		if (getClass() != obj.getClass())
			return false;
		ApplyRecord other = (ApplyRecord) obj;
		if (content == null) {
			if (other.content != null)
				return false;
		} else if (!content.equals(other.content))
			return false;
		if (endTime == null) {
			if (other.endTime != null)
				return false;
		} else if (!endTime.equals(other.endTime))
			return false;
		if (isSigned != other.isSigned)
			return false;
		if (name == null) {
			if (other.name != null)
				return false;
		} else if (!name.equals(other.name))
			return false;
		if (remark == null) {
			if (other.remark != null)
				return false;
		} else if (!remark.equals(other.remark))
			return false;
		if (signedRange == null) {
			if (other.signedRange != null)
				return false;
		} else if (!signedRange.equals(other.signedRange))
			return false;
		if (signedTime == null) {
			if (other.signedTime != null)
				return false;
		} else if (!signedTime.equals(other.signedTime))
			return false;
		if (signedType == null) {
			if (other.signedType != null)
				return false;
		} else if (!signedType.equals(other.signedType))
			return false;
		if (startTime == null) {
			if (other.startTime != null)
				return false;
		} else if (!startTime.equals(other.startTime))
			return false;
		if (messagePush == null) {
			if (other.messagePush != null)
				return false;
		} else if (!messagePush.equals(other.messagePush))
			return false;
		return true;
	}
	
    
}